整数
与数学中的整数含义相同,可正可负,内存容量内无限取值范围
整数包括二进制、八进制、十进制、十六进制4种形式。如:0b1010 = 0o12 = 10 = 0xa
整数之间可以进行位运算,位运算只针对整数有作用
位运算按照二进制方式逐位进行
| 位运算符 | 描述 |
| ——– | ——————– |
| x & y | 按位与 |
| x | y | 按位或 |
| ~x | 按位取反 |
| x ^ y | 按位异或 |
| x << n | 左移,相当于乘2的n次 |
| x >> n | 右移 |1
2
3
4
5
6
7
8
9
10
11In [1]: 101&99
Out[1]: 97
In [2]: bin(101)
Out[2]: '0b1100101'
In [3]: bin(99)
Out[3]: '0b1100011'
In [4]: ~101
Out[4]: -102补码=原码取反+1
浮点数
与数学中的实数含义相同,
存在取值范围:+-10^308左右,有精度限制,epsilon,【sys.float_info】。超出一定范围就直接表示为
inf
(无限大)。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import sys
print(sys.float_info)
'''
sys.float_info(
max=1.7976931348623157e+308,
max_exp=1024,
max_10_exp=308,
min=2.2250738585072014e-308,
min_exp=-1021,
min_10_exp=-307,
dig=15,
mant_dig=53,
epsilon=2.220446049250313e-16,
radix=2,
rounds=1)
'''浮点数包括常规方法和科学计数法2种方式表示。如:0.0043 = 4.3e-3
不确定尾数问题
浮点数在计算机中表示不精确
1
2
3
40.1+0.2
0.30000000000000004
0.1+0.2 ==0.3
False0.1 在内存中的表示:0.00011001100110011001100110011001100110011001100110011010 (二进制),转换成十进制是:0.1000000000000000055511151231257827021181583404541015625 (十进制)
不确定尾数一般发生在10 -16 左右,使用round()辅助浮点数运算,消除不确定尾数
round(x, d):对x四舍五入,d是小数截取位数
1
20.1 + 0.2, 1) == 0.3 round(
True大精确浮点运算
python整数运算是精确的。可以将浮点数转换成(数值整数,小数位数整数)二元组,用二元组进行计算。这样就能把浮点数运算转换成整数运算。
例如:1.2e-3 + 0.01–>(12,4)+(1,2)–>(12,4)+(100,4)–>(112,4)–>0.0112
复数
与数学中的复数概念相同,定义
$$
j =\sqrt{2}
$$复数表示为
$$
s = a+bj
$$z = a+bj,a是实部,b是虚部,a和b都是浮点数
z.real获得z的实部a,z.imag获得z的虚部b
1 | >>>type(1+2j) |
数值运算
操作符
| 操作符 | 描述 |
| —— | ———- |
| x+y | 加 |
| x-y | 减 |
| xy | 乘 |
| x/y | 除 |
| x//y | 整数除 |
| x%y | 求余,取模 |
| +x | 数字本身 |
| -y | 取负 |
| x**y | 幂运算 |
| += | |
| -= | |
| = | |
| /= | |
| //= | |
| %= | |
| **= | |类型间可进行混合运算,生成结果为”最宽”类型
三种类型存在一种逐渐”扩展”或”变宽”的关系:
整数 -> 浮点数 -> 复数
例如:123 + 4.0 = 127.0 (整数+浮点数 = 浮点数)
函数
python解释器提供的内置函数
| 函数及使用 | 描述 |
| ——————– | ———————————— |
| abs(x) | 返回绝对值 |
| divmod(x, y) | 返回商余元组 (x//y, x%y) |
| pow(x, y[, z]) | 幂余,(x**y)%z ,z缺省为1 |
| round(x [, d]) | 四舍五入,d是保留小数位数,缺省值为0 |
| max(x1 ,x2, …, xn) | 返回最大值 |
| min(x1, x2, …, xn) | 返回最小值 || 函数及使用 | 描述 |
| ———- | ———————————————– |
| int(x) | x变成整数,舍弃小数部分。不写x时,创建整数对象0 |
| ord(ch) | 单个字符转换成Unicode码编码整数 |
| float(x) | x变成浮点数,增加小数部分 |
| complex(x) | 将x变成复数,增加虚数部分 |
方法
数值类型在python解释器内部都是类(class),类的方法
1 | >>>1+10 |